From 4b97511982ecdecbac166218b86e786c5cb6718b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Apr 2020 21:00:56 -0400 Subject: Split arm9 compilation to subdir --- .gitignore | 2 + Makefile | 11 +- arm7/Makefile | 175 + arm9/Makefile | 175 + arm9/arm9.lcf | 84 + arm9/asm/CARD_arm9.s | 1782 + arm9/asm/CP_arm9.s | 42 + arm9/asm/CTRDG_arm9.s | 3238 + arm9/asm/DGT_arm9.s | 1017 + arm9/asm/FS_arm9.s | 3011 + arm9/asm/GX_arm9.s | 5256 ++ arm9/asm/MATH_arm9.s | 320 + arm9/asm/MI_arm9.s | 1082 + arm9/asm/OS_arm9.s | 4759 ++ arm9/asm/PM_arm9.s | 1125 + arm9/asm/PXI_arm9.s | 266 + arm9/asm/RTC_arm9.s | 1028 + arm9/asm/SDK_AUTOLOAD_LIST.s | 21 + arm9/asm/SND_arm9.s | 1655 + arm9/asm/SPI_arm9.s | 1487 + arm9/asm/STD_arm9.s | 17117 +++++ arm9/asm/WM_arm9.s | 3744 ++ arm9/asm/arm9_itcm.s | 505 + arm9/asm/arm9overlay.s | 5 + arm9/asm/crt0.s | 283 + arm9/asm/filesystem.s | 648 + arm9/asm/macros.inc | 1 + arm9/asm/macros/function.inc | 24 + arm9/asm/rom2.s | 7 + arm9/asm/rom2_2.s | 734 + arm9/asm/scrcmd.s | 24605 +++++++ arm9/asm/secure.s | 29 + arm9/asm/unk_02000E0C.s | 2758 + arm9/asm/unk_020023C0.s | 8340 +++ arm9/asm/unk_02006864.s | 109321 ++++++++++++++++++++++++++++++ arm9/asm/unk_02038C78.s | 1744 + arm9/asm/unk_02046030.s | 142185 ++++++++++++++++++++++++++++++++++++++++ arm9/asm/unk_0208AC14.s | 42449 ++++++++++++ arm9/asm/unk_020AF030.s | 26835 ++++++++ arm9/asm/unk_10b724.s | 4 + arm9/global.inc | 3521 + arm9/src/FUN_02000DF4.c | 12 + arm9/src/main.c | 110 + arm9/src/script.c | 163 + arm9/src/string_util.c | 153 + arm9/undefined_syms.txt | 506 + asm/CARD_arm9.s | 1782 - asm/CP_arm9.s | 42 - asm/CTRDG_arm9.s | 3238 - asm/DGT_arm9.s | 1017 - asm/FS_arm9.s | 3011 - asm/GX_arm9.s | 5256 -- asm/MATH_arm9.s | 320 - asm/MI_arm9.s | 1082 - asm/OS_arm9.s | 4759 -- asm/PM_arm9.s | 1125 - asm/PXI_arm9.s | 266 - asm/RTC_arm9.s | 1028 - asm/SDK_AUTOLOAD_LIST.s | 20 - asm/SND_arm9.s | 1655 - asm/SPI_arm9.s | 1487 - asm/STD_arm9.s | 17117 ----- asm/WM_arm9.s | 3744 -- asm/arm9_itcm.s | 505 - asm/arm9overlay.s | 5 - asm/crt0.s | 283 - asm/filesystem.s | 648 - asm/rom2.s | 7 - asm/rom2_2.s | 734 - asm/scrcmd.s | 24605 ------- asm/secure.s | 29 - asm/unk_02000E0C.s | 2758 - asm/unk_020023C0.s | 8340 --- asm/unk_02006864.s | 109321 ------------------------------ asm/unk_02038C78.s | 1744 - asm/unk_02046030.s | 142185 ---------------------------------------- asm/unk_0208AC14.s | 42449 ------------ asm/unk_020AF030.s | 26835 -------- asm/unk_10b724.s | 4 - pokediamond.lcf | 77 +- src/FUN_02000DF4.c | 12 - src/main.c | 110 - src/script.c | 163 - src/string_util.c | 153 - 84 files changed, 412341 insertions(+), 407914 deletions(-) create mode 100644 arm7/Makefile create mode 100644 arm9/Makefile create mode 100644 arm9/arm9.lcf create mode 100644 arm9/asm/CARD_arm9.s create mode 100644 arm9/asm/CP_arm9.s create mode 100644 arm9/asm/CTRDG_arm9.s create mode 100644 arm9/asm/DGT_arm9.s create mode 100644 arm9/asm/FS_arm9.s create mode 100644 arm9/asm/GX_arm9.s create mode 100644 arm9/asm/MATH_arm9.s create mode 100644 arm9/asm/MI_arm9.s create mode 100644 arm9/asm/OS_arm9.s create mode 100644 arm9/asm/PM_arm9.s create mode 100644 arm9/asm/PXI_arm9.s create mode 100644 arm9/asm/RTC_arm9.s create mode 100644 arm9/asm/SDK_AUTOLOAD_LIST.s create mode 100644 arm9/asm/SND_arm9.s create mode 100644 arm9/asm/SPI_arm9.s create mode 100644 arm9/asm/STD_arm9.s create mode 100644 arm9/asm/WM_arm9.s create mode 100644 arm9/asm/arm9_itcm.s create mode 100644 arm9/asm/arm9overlay.s create mode 100644 arm9/asm/crt0.s create mode 100644 arm9/asm/filesystem.s create mode 100644 arm9/asm/macros.inc create mode 100644 arm9/asm/macros/function.inc create mode 100644 arm9/asm/rom2.s create mode 100644 arm9/asm/rom2_2.s create mode 100644 arm9/asm/scrcmd.s create mode 100644 arm9/asm/secure.s create mode 100644 arm9/asm/unk_02000E0C.s create mode 100644 arm9/asm/unk_020023C0.s create mode 100644 arm9/asm/unk_02006864.s create mode 100644 arm9/asm/unk_02038C78.s create mode 100644 arm9/asm/unk_02046030.s create mode 100644 arm9/asm/unk_0208AC14.s create mode 100644 arm9/asm/unk_020AF030.s create mode 100644 arm9/asm/unk_10b724.s create mode 100644 arm9/global.inc create mode 100644 arm9/src/FUN_02000DF4.c create mode 100644 arm9/src/main.c create mode 100644 arm9/src/script.c create mode 100644 arm9/src/string_util.c create mode 100644 arm9/undefined_syms.txt delete mode 100644 asm/CARD_arm9.s delete mode 100644 asm/CP_arm9.s delete mode 100644 asm/CTRDG_arm9.s delete mode 100644 asm/DGT_arm9.s delete mode 100644 asm/FS_arm9.s delete mode 100644 asm/GX_arm9.s delete mode 100644 asm/MATH_arm9.s delete mode 100644 asm/MI_arm9.s delete mode 100644 asm/OS_arm9.s delete mode 100644 asm/PM_arm9.s delete mode 100644 asm/PXI_arm9.s delete mode 100644 asm/RTC_arm9.s delete mode 100644 asm/SDK_AUTOLOAD_LIST.s delete mode 100644 asm/SND_arm9.s delete mode 100644 asm/SPI_arm9.s delete mode 100644 asm/STD_arm9.s delete mode 100644 asm/WM_arm9.s delete mode 100644 asm/arm9_itcm.s delete mode 100644 asm/arm9overlay.s delete mode 100644 asm/crt0.s delete mode 100644 asm/filesystem.s delete mode 100644 asm/rom2.s delete mode 100644 asm/rom2_2.s delete mode 100644 asm/scrcmd.s delete mode 100644 asm/secure.s delete mode 100644 asm/unk_02000E0C.s delete mode 100644 asm/unk_020023C0.s delete mode 100644 asm/unk_02006864.s delete mode 100644 asm/unk_02038C78.s delete mode 100644 asm/unk_02046030.s delete mode 100644 asm/unk_0208AC14.s delete mode 100644 asm/unk_020AF030.s delete mode 100644 asm/unk_10b724.s delete mode 100644 src/FUN_02000DF4.c delete mode 100644 src/main.c delete mode 100644 src/script.c delete mode 100644 src/string_util.c diff --git a/.gitignore b/.gitignore index b6cffd40..43a15d11 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ tools/mwccarm/** # Build folder build/** +arm7/build/** +arm9/build/** # CLion folders .idea/ diff --git a/Makefile b/Makefile index 763dd714..d5a3c410 100644 --- a/Makefile +++ b/Makefile @@ -54,6 +54,8 @@ S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ +ARM9BIN := arm9/build/arm9.bin + ##################### Compiler Options ####################### MWCCVERSION := 2.0/base @@ -107,7 +109,7 @@ else NODEP := 1 endif -.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm +.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) MAKEFLAGS += --no-print-directory @@ -133,6 +135,9 @@ $(MWASMARM): patch_mwasmarm patch_mwasmarm: $(MWASMARM_PATCHER) $(MWASMARM) +$(ARM9BIN): + @$(MAKE) -C arm9 + ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) $(BUILD_DIR)/%.o: %.c @@ -144,8 +149,8 @@ $(BUILD_DIR)/%.o: %.s $(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) +$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(ARM9BIN) + $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) $(ROM): $(ELF) $(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@ diff --git a/arm7/Makefile b/arm7/Makefile new file mode 100644 index 00000000..763dd714 --- /dev/null +++ b/arm7/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 := pokediamond.us + +ROM := $(BUILD_DIR)/$(TARGET).nds +ELF := $(BUILD_DIR)/$(TARGET).elf +LD_SCRIPT := pokediamond.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 + +CROSS := arm-none-eabi- + +MWCCARM := tools/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/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM := tools/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 +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 +TOOLS_DIR = 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/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 --pad-to=0x04000000 $< $@ + +# 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/Makefile b/arm9/Makefile new file mode 100644 index 00000000..5c6b4fda --- /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 +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; diff --git a/asm/CARD_arm9.s b/asm/CARD_arm9.s deleted file mode 100644 index 664e85f5..00000000 --- a/asm/CARD_arm9.s +++ /dev/null @@ -1,1782 +0,0 @@ - .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/asm/CP_arm9.s b/asm/CP_arm9.s deleted file mode 100644 index c756e8e2..00000000 --- a/asm/CP_arm9.s +++ /dev/null @@ -1,42 +0,0 @@ - .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/asm/CTRDG_arm9.s b/asm/CTRDG_arm9.s deleted file mode 100644 index 301ea233..00000000 --- a/asm/CTRDG_arm9.s +++ /dev/null @@ -1,3238 +0,0 @@ - .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/asm/DGT_arm9.s b/asm/DGT_arm9.s deleted file mode 100644 index d5ef358d..00000000 --- a/asm/DGT_arm9.s +++ /dev/null @@ -1,1017 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start ProcessBlock -ProcessBlock: ; 0x020D2798 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - add r3, r0, #0x18 - ldr r5, [r0, #0x0] - ldr r4, [r0, #0x4] - ldr lr, [r0, #0x8] - ldr r12, [r0, #0xc] - ldr r2, _020D2B78 ; =0x02106900 - mov r8, r3 - mov r7, #0x0 -_020D27C0: - mvn r1, r4 - and r6, r4, lr - and r1, r1, r12 - orr r1, r6, r1 - ldr r6, [r8, #0x0] - add r1, r5, r1 - ldr r5, [r2, #0x0] - add r1, r6, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x7 - orr r1, r1, r5, lsr #0x19 - add r5, r4, r1 - mvn r1, r5 - and r6, r5, r4 - and r1, r1, lr - orr r1, r6, r1 - ldr r6, [r8, #0x4] - add r1, r12, r1 - ldr r9, [r2, #0x4] - add r1, r6, r1 - add r6, r9, r1 - mov r1, r6, lsl #0xc - orr r1, r1, r6, lsr #0x14 - add r12, r5, r1 - mvn r1, r12 - and r6, r12, r5 - and r1, r1, r4 - orr r6, r6, r1 - add r1, r8, #0xc - ldr r9, [r8, #0x8] - add r6, lr, r6 - add r6, r9, r6 - ldr r9, [r2, #0x8] - ldr r1, [r1, #0x0] - add r10, r9, r6 - add r6, r2, #0xc - ldr r6, [r6, #0x0] - mov r9, r10, lsl #0x11 - orr r9, r9, r10, lsr #0xf - add lr, r12, r9 - add r2, r2, #0x10 - add r8, r8, #0x10 - and r10, lr, r12 - mvn r9, lr - and r9, r9, r5 - orr r9, r10, r9 - add r4, r4, r9 - add r1, r1, r4 - add r4, r6, r1 - mov r1, r4, lsl #0x16 - orr r1, r1, r4, lsr #0xa - add r4, lr, r1 - add r7, r7, #0x1 - cmp r7, #0x4 - blt _020D27C0 - ldr r6, _020D2B7C ; =0x02106840 - mov r1, #0x0 -_020D28A4: - mvn r7, r12 - ldr r9, [r6, #0x0] - and r8, r4, r12 - and r7, lr, r7 - orr r7, r8, r7 - ldr r8, [r3, r9, lsl #0x2] - add r5, r5, r7 - ldr r7, [r2, #0x0] - add r5, r8, r5 - add r7, r7, r5 - mov r5, r7, lsl #0x5 - orr r5, r5, r7, lsr #0x1b - add r5, r4, r5 - mvn r8, lr - ldr r7, [r6, #0x4] - and r9, r5, lr - and r8, r4, r8 - orr r10, r9, r8 - mvn r8, r4 - ldr r9, [r6, #0x8] - ldr r11, [r3, r7, lsl #0x2] - add r7, r12, r10 - add r10, r11, r7 - add r7, r6, #0xc - ldr r9, [r3, r9, lsl #0x2] - and r8, r5, r8 - ldr r7, [r7, #0x0] - ldr r11, [r2, #0x4] - ldr r7, [r3, r7, lsl #0x2] - add r11, r11, r10 - mov r10, r11, lsl #0x9 - orr r10, r10, r11, lsr #0x17 - add r12, r5, r10 - ldr r10, [r2, #0x8] - and r11, r12, r4 - orr r8, r11, r8 - add r8, lr, r8 - add r8, r9, r8 - add r10, r10, r8 - add r8, r2, #0xc - ldr r8, [r8, #0x0] - mov r9, r10, lsl #0xe - orr r9, r9, r10, lsr #0x12 - add lr, r12, r9 - add r2, r2, #0x10 - add r6, r6, #0x10 - and r10, lr, r5 - mvn r9, r5 - and r9, r12, r9 - orr r9, r10, r9 - add r4, r4, r9 - add r4, r7, r4 - add r7, r8, r4 - mov r4, r7, lsl #0x14 - orr r4, r4, r7, lsr #0xc - add r4, lr, r4 - add r1, r1, #0x1 - cmp r1, #0x4 - blt _020D28A4 - mov r7, #0x0 -_020D2994: - ldr r8, [r6, #0x0] - eor r1, r4, lr - eor r1, r12, r1 - add r1, r5, r1 - ldr r8, [r3, r8, lsl #0x2] - ldr r5, [r2, #0x0] - add r1, r8, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x4 - orr r1, r1, r5, lsr #0x1c - add r5, r4, r1 - ldr r8, [r6, #0x4] - eor r1, r5, r4 - eor r1, lr, r1 - ldr r8, [r3, r8, lsl #0x2] - add r1, r12, r1 - ldr r9, [r6, #0x8] - ldr r10, [r2, #0x4] - add r1, r8, r1 - add r8, r10, r1 - mov r1, r8, lsl #0xb - orr r1, r1, r8, lsr #0x15 - add r12, r5, r1 - eor r8, r12, r5 - eor r8, r4, r8 - ldr r9, [r3, r9, lsl #0x2] - add r8, lr, r8 - add r9, r9, r8 - ldr r10, [r2, #0x8] - add r1, r2, #0xc - ldr r8, [r6, #0xc] - add r10, r10, r9 - ldr r9, [r3, r8, lsl #0x2] - mov r8, r10, lsl #0x10 - orr r8, r8, r10, lsr #0x10 - add lr, r12, r8 - eor r8, lr, r12 - eor r8, r5, r8 - add r4, r4, r8 - add r7, r7, #0x1 - ldr r1, [r1, #0x0] - add r4, r9, r4 - add r4, r1, r4 - mov r1, r4, lsl #0x17 - orr r1, r1, r4, lsr #0x9 - add r2, r2, #0x10 - add r6, r6, #0x10 - add r4, lr, r1 - cmp r7, #0x4 - blt _020D2994 - mov r10, #0x0 -_020D2A60: - mvn r1, r12 - ldr r7, [r6, #0x0] - orr r1, r4, r1 - eor r1, lr, r1 - ldr r7, [r3, r7, lsl #0x2] - add r1, r5, r1 - ldr r5, [r2, #0x0] - add r1, r7, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x6 - orr r1, r1, r5, lsr #0x1a - add r5, r4, r1 - mvn r1, lr - ldr r7, [r6, #0x4] - orr r1, r5, r1 - eor r1, r4, r1 - ldr r8, [r6, #0x8] - ldr r7, [r3, r7, lsl #0x2] - add r1, r12, r1 - ldr r9, [r2, #0x4] - add r1, r7, r1 - add r9, r9, r1 - mov r7, r9, lsl #0xa - add r1, r6, #0xc - orr r9, r7, r9, lsr #0x16 - ldr r1, [r1, #0x0] - add r7, r2, #0xc - add r12, r5, r9 - ldr r8, [r3, r8, lsl #0x2] - ldr r7, [r7, #0x0] - ldr r1, [r3, r1, lsl #0x2] - ldr r9, [r2, #0x8] - mvn r11, r4 - orr r11, r12, r11 - eor r11, r5, r11 - add r11, lr, r11 - add r8, r8, r11 - add r9, r9, r8 - mov r8, r9, lsl #0xf - orr r8, r8, r9, lsr #0x11 - add lr, r12, r8 - add r2, r2, #0x10 - add r6, r6, #0x10 - mvn r8, r5 - orr r8, lr, r8 - eor r8, r12, r8 - add r4, r4, r8 - add r1, r1, r4 - add r4, r7, r1 - mov r1, r4, lsl #0x15 - orr r1, r1, r4, lsr #0xb - add r4, lr, r1 - add r10, r10, #0x1 - cmp r10, #0x4 - blt _020D2A60 - ldr r1, [r0, #0x0] - add r1, r1, r5 - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, r4 - str r1, [r0, #0x4] - ldr r1, [r0, #0x8] - add r1, r1, lr - str r1, [r0, #0x8] - ldr r1, [r0, #0xc] - add r1, r1, r12 - str r1, [r0, #0xc] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020D2B78: .word Unk_02106900 ; = 0x02106900 -_020D2B7C: .word Unk_02106840 ; = 0x02106840 - - arm_func_start DGT_Hash1GetDigest_R -DGT_Hash1GetDigest_R: ; 0x020D2B80 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldr r1, [r6, #0x14] - ldr r3, [r6, #0x10] - mov r7, r0 - mov r4, r1, lsl #0x3 - ldr r1, _020D2C40 ; =0x0210683C - mov r0, r6 - mov r2, #0x1 - orr r4, r4, r3, lsr #0x1d - mov r5, r3, lsl #0x3 - bl DGT_Hash1SetSource - ldr r0, [r6, #0x10] - mov r1, #0x0 - and r3, r0, #0x3f - rsb r2, r3, #0x40 - cmp r2, #0x8 - bhs _020D2BE8 - add r0, r6, #0x18 - add r0, r0, r3 - bl MI_CpuFill8 - mov r0, r6 - bl ProcessBlock - mov r3, #0x0 - mov r2, #0x40 -_020D2BE8: - cmp r2, #0x8 - bls _020D2C04 - add r0, r6, #0x18 - add r0, r0, r3 - sub r2, r2, #0x8 - mov r1, #0x0 - bl MI_CpuFill8 -_020D2C04: - str r5, [r6, #0x50] - mov r0, r6 - str r4, [r6, #0x54] - bl ProcessBlock - mov r0, r6 - mov r1, r7 - mov r2, #0x10 - bl MI_CpuCopy8 - mov r0, r6 - mov r1, #0x0 - mov r2, #0x58 - bl MI_CpuFill8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020D2C40: .word Unk_0210683C ; = 0x0210683C - - arm_func_start DGT_Hash1SetSource -DGT_Hash1SetSource: ; 0x020D2C44 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - add r12, r8, #0x10 - ldr r4, [r8, #0x10] - mov r6, r2 - and r3, r4, #0x3f - ldr r0, [r12, #0x4] - adds r4, r4, r6 - str r4, [r8, #0x10] - adc r0, r0, #0x0 - rsb r5, r3, #0x40 - mov r7, r1 - str r0, [r12, #0x4] - cmp r5, r6 - bls _020D2CB0 - cmp r6, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - add r1, r8, #0x18 - mov r0, r7 - add r1, r1, r3 - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_020D2CB0: - add r1, r8, #0x18 - mov r0, r7 - mov r2, r5 - add r1, r1, r3 - bl MI_CpuCopy8 - mov r0, r8 - bl ProcessBlock - sub r6, r6, r5 - mov r4, r6, lsr #0x6 - cmp r4, #0x0 - add r9, r7, r5 - ble _020D2D10 - add r7, r8, #0x18 - mov r5, #0x40 -_020D2CE8: - mov r0, r9 - mov r1, r7 - mov r2, r5 - bl MI_CpuCopy8 - mov r0, r8 - add r9, r9, #0x40 - bl ProcessBlock - sub r4, r4, #0x1 - cmp r4, #0x0 - bgt _020D2CE8 -_020D2D10: - ands r2, r6, #0x3f - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r0, r9 - add r1, r8, #0x18 - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start DGT_Hash1Reset -DGT_Hash1Reset: ; 0x020D2D38 - ldr r2, _020D2D68 ; =0x67452301 - ldr r1, _020D2D6C ; =0xEFCDAB89 - str r2, [r0, #0x0] - ldr r2, _020D2D70 ; =0x98BADCFE - str r1, [r0, #0x4] - ldr r1, _020D2D74 ; =0x10325476 - str r2, [r0, #0x8] - str r1, [r0, #0xc] - mov r1, #0x0 - str r1, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - .balign 4 -_020D2D68: .word 0x67452301 -_020D2D6C: .word 0xEFCDAB89 -_020D2D70: .word 0x98BADCFE -_020D2D74: .word 0x10325476 - - arm_func_start 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/asm/FS_arm9.s b/asm/FS_arm9.s deleted file mode 100644 index 8fcbff7a..00000000 --- a/asm/FS_arm9.s +++ /dev/null @@ -1,3011 +0,0 @@ - .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/asm/GX_arm9.s b/asm/GX_arm9.s deleted file mode 100644 index 59a548b2..00000000 --- a/asm/GX_arm9.s +++ /dev/null @@ -1,5256 +0,0 @@ - .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/asm/MATH_arm9.s b/asm/MATH_arm9.s deleted file mode 100644 index 02dcfbcf..00000000 --- a/asm/MATH_arm9.s +++ /dev/null @@ -1,320 +0,0 @@ - .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/asm/MI_arm9.s b/asm/MI_arm9.s deleted file mode 100644 index 82747b38..00000000 --- a/asm/MI_arm9.s +++ /dev/null @@ -1,1082 +0,0 @@ - .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/asm/OS_arm9.s b/asm/OS_arm9.s deleted file mode 100644 index 1323e376..00000000 --- a/asm/OS_arm9.s +++ /dev/null @@ -1,4759 +0,0 @@ - .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/asm/PM_arm9.s b/asm/PM_arm9.s deleted file mode 100644 index 331c0fa9..00000000 --- a/asm/PM_arm9.s +++ /dev/null @@ -1,1125 +0,0 @@ - .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/asm/PXI_arm9.s b/asm/PXI_arm9.s deleted file mode 100644 index ab3af5de..00000000 --- a/asm/PXI_arm9.s +++ /dev/null @@ -1,266 +0,0 @@ - .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/asm/RTC_arm9.s b/asm/RTC_arm9.s deleted file mode 100644 index 8116f8de..00000000 --- a/asm/RTC_arm9.s +++ /dev/null @@ -1,1028 +0,0 @@ - .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/asm/SDK_AUTOLOAD_LIST.s b/asm/SDK_AUTOLOAD_LIST.s deleted file mode 100644 index 8043d616..00000000 --- a/asm/SDK_AUTOLOAD_LIST.s +++ /dev/null @@ -1,20 +0,0 @@ - .include "asm/macros.inc" - .section .data - - .global SDK_AUTOLOAD_LIST -SDK_AUTOLOAD_LIST: ; 0x02107700 - .word 0x01FF8000 - .word 0x00000700 - .word 0x00000000 - - .word 0x027e0000 - .word 0x00000060 - .word 0x00000020 - - .word 0x02400000 - .word 0x00000000 - .word 0x00000000 - - .global SDK_AUTOLOAD_LIST_END -SDK_AUTOLOAD_LIST_END: - diff --git a/asm/SND_arm9.s b/asm/SND_arm9.s deleted file mode 100644 index 99351712..00000000 --- a/asm/SND_arm9.s +++ /dev/null @@ -1,1655 +0,0 @@ - .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/asm/SPI_arm9.s b/asm/SPI_arm9.s deleted file mode 100644 index 915bb22c..00000000 --- a/asm/SPI_arm9.s +++ /dev/null @@ -1,1487 +0,0 @@ - .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/asm/STD_arm9.s b/asm/STD_arm9.s deleted file mode 100644 index b38ac8e4..00000000 --- a/asm/STD_arm9.s +++ /dev/null @@ -1,17117 +0,0 @@ - .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/asm/WM_arm9.s b/asm/WM_arm9.s deleted file mode 100644 index cc3e7998..00000000 --- a/asm/WM_arm9.s +++ /dev/null @@ -1,3744 +0,0 @@ - .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/asm/arm9_itcm.s b/asm/arm9_itcm.s deleted file mode 100644 index 79c0de28..00000000 --- a/asm/arm9_itcm.s +++ /dev/null @@ -1,505 +0,0 @@ - .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/asm/arm9overlay.s b/asm/arm9overlay.s deleted file mode 100644 index 70356c52..00000000 --- a/asm/arm9overlay.s +++ /dev/null @@ -1,5 +0,0 @@ - .text - - .global ARM9Overlay -ARM9Overlay: - .incbin "baserom.nds", 0x10B800, 0xAE0 diff --git a/asm/crt0.s b/asm/crt0.s deleted file mode 100644 index 709bd5f3..00000000 --- a/asm/crt0.s +++ /dev/null @@ -1,283 +0,0 @@ - .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/asm/filesystem.s b/asm/filesystem.s deleted file mode 100644 index 75af021d..00000000 --- a/asm/filesystem.s +++ /dev/null @@ -1,648 +0,0 @@ - .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/asm/rom2.s b/asm/rom2.s deleted file mode 100644 index 0f18b45a..00000000 --- a/asm/rom2.s +++ /dev/null @@ -1,7 +0,0 @@ - - .include "asm/macros.inc" - .include "global.inc" - - .data - -.incbin "baserom.nds", 0xF0710, 0x3F8 ; this does not seem to be code diff --git a/asm/rom2_2.s b/asm/rom2_2.s deleted file mode 100644 index d5055773..00000000 --- a/asm/rom2_2.s +++ /dev/null @@ -1,734 +0,0 @@ -.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/asm/scrcmd.s b/asm/scrcmd.s deleted file mode 100644 index d75850de..00000000 --- a/asm/scrcmd.s +++ /dev/null @@ -1,24605 +0,0 @@ - .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/asm/secure.s b/asm/secure.s deleted file mode 100644 index f9d8f159..00000000 --- a/asm/secure.s +++ /dev/null @@ -1,29 +0,0 @@ -/* 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/asm/unk_02000E0C.s b/asm/unk_02000E0C.s deleted file mode 100644 index 50b0dace..00000000 --- a/asm/unk_02000E0C.s +++ /dev/null @@ -1,2758 +0,0 @@ - .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/asm/unk_020023C0.s b/asm/unk_020023C0.s deleted file mode 100644 index 2024d9d7..00000000 --- a/asm/unk_020023C0.s +++ /dev/null @@ -1,8340 +0,0 @@ - .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/asm/unk_02006864.s b/asm/unk_02006864.s deleted file mode 100644 index dab6adfe..00000000 --- a/asm/unk_02006864.s +++ /dev/null @@ -1,109321 +0,0 @@ - .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/asm/unk_02038C78.s b/asm/unk_02038C78.s deleted file mode 100644 index 785e5b48..00000000 --- a/asm/unk_02038C78.s +++ /dev/null @@ -1,1744 +0,0 @@ - .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/asm/unk_02046030.s b/asm/unk_02046030.s deleted file mode 100644 index 30b8ee4c..00000000 --- a/asm/unk_02046030.s +++ /dev/null @@ -1,142185 +0,0 @@ - .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/asm/unk_0208AC14.s b/asm/unk_0208AC14.s deleted file mode 100644 index 0adafb8b..00000000 --- a/asm/unk_0208AC14.s +++ /dev/null @@ -1,42449 +0,0 @@ - .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/asm/unk_020AF030.s b/asm/unk_020AF030.s deleted file mode 100644 index 33faec27..00000000 --- a/asm/unk_020AF030.s +++ /dev/null @@ -1,26835 +0,0 @@ - .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/asm/unk_10b724.s b/asm/unk_10b724.s deleted file mode 100644 index cfa5f27a..00000000 --- a/asm/unk_10b724.s +++ /dev/null @@ -1,4 +0,0 @@ - .text - .word 0xdec00621 - .word 0x00000b68 - .word 0x00000000 diff --git a/pokediamond.lcf b/pokediamond.lcf index da357c97..452afd17 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -1,12 +1,7 @@ /* TEST */ MEMORY { header (RWX) : ORIGIN=0, LENGTH=0 - arm9.text (RWX) : ORIGIN=0x02000000, LENGTH=0 - arm9.data (RWX) : ORIGIN=0x020EC710, LENGTH=0 - arm9.itcm (RWX) : ORIGIN=0x01FF8000, LENGTH=0x8000 - arm9.dtcm (RWX) : ORIGIN=0x027E0000, LENGTH=0x2000 - arm9.autoload (RWX) : ORIGIN=0x02107700, LENGTH=0 - arm9overlay (RWX) : ORIGIN=0, LENGTH=0 + arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 arm7 (RWX) : ORIGIN=0x2380000, LENGTH=0 filenametable (RWX) : ORIGIN=0, LENGTH=0 fileallocationtable (RWX) : ORIGIN=0, LENGTH=0 @@ -377,72 +372,10 @@ SECTIONS { } > header .arm9 : AT (0x4000) { - 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) - } > arm9.text - - .arm9.data : AT (0xF0710) { - rom2.o (.data) - string_util.o (.data) - rom2_2.o (.data) - } > arm9.data - - SDK_AUTOLOAD_START = .; - SDK_STATIC_BSS_START = .; - SDK_STATIC_BSS_END = . + 0xd0540; - - .arm9.itcm : AT (0x10AFA0) - { - arm9_itcm.o (.itcm) - . = 0x01FF8720; - SDK_SECTION_ARENA_ITCM_START = .; - } > arm9.itcm - - .arm9.dtcm : AT (0x10B6A0) { - SDK_AUTOLOAD_DTCM_START = .; - OS_arm9.o (.dtcm) - . = 0x027E0080; - SDK_SECTION_ARENA_DTCM_START = .; - } > arm9.dtcm - - .arm9.autoload : AT (0x10B700) { - SDK_AUTOLOAD_LIST.o (.data) - unk_10b724.o (.text) - } > arm9.autoload - - .arm9overlay : AT (0x10B800) { - arm9overlay.o (.text) - } > arm9overlay + _start = .; + _start_AutoloadDoneCallback = . + 0xA74; + INCLUDE arm9.bin + } > arm9 .FILE_10C400 : AT (0x10C400) { FILE_10C400.o (.text) /* 0x10C400 */ diff --git a/src/FUN_02000DF4.c b/src/FUN_02000DF4.c deleted file mode 100644 index 0099480c..00000000 --- a/src/FUN_02000DF4.c +++ /dev/null @@ -1,12 +0,0 @@ -#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/src/main.c b/src/main.c deleted file mode 100644 index bfd6c82e..00000000 --- a/src/main.c +++ /dev/null @@ -1,110 +0,0 @@ -#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/src/script.c b/src/script.c deleted file mode 100644 index 7a7ae894..00000000 --- a/src/script.c +++ /dev/null @@ -1,163 +0,0 @@ -#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/src/string_util.c b/src/string_util.c deleted file mode 100644 index 8f9c96ff..00000000 --- a/src/string_util.c +++ /dev/null @@ -1,153 +0,0 @@ -#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; -} -- cgit v1.2.3 From 409de04065549094cec4905209aaf90dd7e3060c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Apr 2020 21:07:47 -0400 Subject: Move arm7 build files to subdirectory --- Makefile | 10 +- arm7/Makefile | 24 +- arm7/arm7.lcf | 10 + arm7/asm/arm7_rom.s | 212 +++ arm7/asm/macros.inc | 1 + arm7/asm/macros/function.inc | 24 + arm7/global.inc | 3517 ++++++++++++++++++++++++++++++++++++++++++ arm7/undefined_syms.txt | 506 ++++++ asm/arm7_rom.s | 212 --- pokediamond.lcf | 5 +- 10 files changed, 4292 insertions(+), 229 deletions(-) create mode 100644 arm7/arm7.lcf create mode 100644 arm7/asm/arm7_rom.s create mode 100644 arm7/asm/macros.inc create mode 100644 arm7/asm/macros/function.inc create mode 100644 arm7/global.inc create mode 100644 arm7/undefined_syms.txt delete mode 100644 asm/arm7_rom.s diff --git a/Makefile b/Makefile index d5a3c410..f67c4348 100644 --- a/Makefile +++ b/Makefile @@ -55,6 +55,7 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ ARM9BIN := arm9/build/arm9.bin +ARM7BIN := arm7/build/arm7.bin ##################### Compiler Options ####################### @@ -109,7 +110,7 @@ else NODEP := 1 endif -.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) +.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) $(ARM7BIN) MAKEFLAGS += --no-print-directory @@ -138,6 +139,9 @@ patch_mwasmarm: $(ARM9BIN): @$(MAKE) -C arm9 +$(ARM7BIN): + @$(MAKE) -C arm7 + ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) $(BUILD_DIR)/%.o: %.c @@ -149,8 +153,8 @@ $(BUILD_DIR)/%.o: %.s $(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) $(ARM9BIN) - $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) +$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(ARM9BIN) $(ARM7BIN) + $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) $(ARM7BIN) $(ROM): $(ELF) $(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@ diff --git a/arm7/Makefile b/arm7/Makefile index 763dd714..88e81d5d 100644 --- a/arm7/Makefile +++ b/arm7/Makefile @@ -37,11 +37,11 @@ endif BUILD_DIR := build -TARGET := pokediamond.us +TARGET := arm7 -ROM := $(BUILD_DIR)/$(TARGET).nds +ROM := $(BUILD_DIR)/$(TARGET).bin ELF := $(BUILD_DIR)/$(TARGET).elf -LD_SCRIPT := pokediamond.lcf +LD_SCRIPT := arm7.lcf # Directories containing source files SRC_DIRS := src @@ -57,17 +57,18 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ ##################### Compiler Options ####################### MWCCVERSION := 2.0/base +TOOLS_DIR = ../tools CROSS := arm-none-eabi- -MWCCARM := tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +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/mwccarm/$(MWCCVERSION)/mwldarm.exe -MWASMARM := tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe AS := $(WINE) $(MWASMARM) CC := $(WINE) $(MWCCARM) @@ -77,15 +78,14 @@ 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 +# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir include +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 -TOOLS_DIR = tools SHA1SUM = sha1sum JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx @@ -112,10 +112,10 @@ endif MAKEFLAGS += --no-print-directory all: $(ROM) - @$(SHA1SUM) -c $(TARGET).sha1 + # @$(SHA1SUM) -c $(TARGET).sha1 clean: mostlyclean - make -C tools/mwasmarm_patcher clean + 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) {} + @@ -148,7 +148,7 @@ $(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 --pad-to=0x04000000 $< $@ + $(OBJCOPY) -O binary --gap-fill=0xFF $< $@ # Make sure build directory exists before compiling anything DUMMY != mkdir -p $(ALL_DIRS) diff --git a/arm7/arm7.lcf b/arm7/arm7.lcf new file mode 100644 index 00000000..784c4cbb --- /dev/null +++ b/arm7/arm7.lcf @@ -0,0 +1,10 @@ +MEMORY { + .text (RX) : ORIGIN=0x02380000, LENGTH=0 +} + +SECTIONS { +#include "undefined_syms.txt" + .text : AT (0x0) { + arm7_rom.o (.text) + } > .text +} diff --git a/arm7/asm/arm7_rom.s b/arm7/asm/arm7_rom.s new file mode 100644 index 00000000..3366eba4 --- /dev/null +++ b/arm7/asm/arm7_rom.s @@ -0,0 +1,212 @@ +/* arm7_rom.s TODO: Disassemble */ + .include "asm/macros.inc" + .global ARM7AutoLoad + + .section .text + arm_func_start _start + +_start: + mov ip, #67108864 ; 0x4000000 + str ip, [ip, #520] ; 0x208 + ldr r1, _23800cc + mov r0, #58720256 ; 0x3800000 + cmp r0, r1 + movpl r1, r0 + ldr r2, _23800d0 + mov r0, #0 +_02380020: + cmp r1, r2 + stmltia r1!, {r0} + blt _02380020 + mov r0, #19 + msr CPSR_c, r0 + ldr sp, _23800d4 + mov r0, #18 + msr CPSR_c, r0 + ldr r0, _23800d8 + mov sp, r0 + ldr r1, _23800dc + sub r1, r0, r1 + mov r0, #31 + msr CPSR_fsxc, r0 + sub sp, r1, #4 + ldr r0, _23800e0 + ldr r1, _23800e4 + add r2, r1, #352 ; 0x160 +_02380068: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380068 + ldr r0, _23800e8 + add r2, r1, #32 +_02380080: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380080 + bl FUN_2380100 + ldr r0, _23800ec + ldr r1, [r0, #12] + ldr r2, [r0, #16] + mov r0, #0 +_023800a4: + cmp r1, r2 + strcc r0, [r1], #4 + bcc _023800a4 + bl FUN_238015C + ldr r1, _23800f0 + ldr r0, _23800f4 + str r0, [r1] + ldr r1, _23800f8 + ldr lr, _23800fc + bx r1 +_23800cc: .word FUN_023801B0 +_23800d0: .word 0x0380ff00 +_23800d4: .word 0x0380ffc0 +_23800d8: .word 0x0380ff80 +_23800dc: .word 0x00000400 +_23800e0: .word 0x023fe940 +_23800e4: .word 0x027ffa80 +_23800e8: .word 0x023fe904 +_23800ec: .word _2380198 +_23800f0: .word 0x0380fffc +_23800f4: .word 0x037f853c +_23800f8: .word 0x037f8468 +_23800fc: .word 0xffff0000 + arm_func_end _start + + arm_func_start FUN_2380100 +FUN_2380100: + ldr r0, _2380154 + ldr r1, [r0] + ldr r2, [r0, #4] + ldr r3, [r0, #8] +_02380110: + cmp r1, r2 + beq _02380150 + ldr r4, [r1], #4 + ldr r5, [r1], #4 + add r6, r4, r5 +_02380124: + cmp r4, r6 + ldrmi r7, [r3], #4 + strmi r7, [r4], #4 + bmi _02380124 + ldr r5, [r1], #4 + add r6, r4, r5 + mov r7, #0 +_02380140: + cmp r4, r6 + strcc r7, [r4], #4 + bcc _02380140 + beq _02380110 +_02380150: + b ARM7AutoLoad +_2380154: .word _2380198 +ARM7AutoLoad: + bx lr + arm_func_end FUN_2380100 + + arm_func_start FUN_238015C +FUN_238015C: + mov r0, #1 + mov r1, #0 + ldr r2, _2380194 + sub r3, r2, #4194304 ; 0x400000 +_0238016c: + strh r1, [r2] + ldrh ip, [r3] + cmp r1, ip + movne r0, #2 + bne _0238018c + add r1, r1, #1 + cmp r1, #2 + bne _0238016c +_0238018c: + strh r0, [r2] + bx lr +_2380194: .word 0x027ffffa +_2380198: + .word UNK_23A92F8 + .word UNK_23A931C + .word FUN_023801B0 + .word FUN_023801B0 + .word FUN_023801B0 + .word 0x00000000 + arm_func_end FUN_238015C + + arm_func_start FUN_023801B0 +FUN_023801B0: + .incbin "baserom.nds", 0x30D1B0, 0x91B0 + + thumb_func_start ROM7_SVC_SoftReset +ROM7_SVC_SoftReset: ; 0x02389360 + swi 0 + bx lr + + thumb_func_start ROM7_SVC_WaitByLoop +ROM7_SVC_WaitByLoop: ; 0x02389364 + swi 3 + bx lr + + thumb_func_start ROM7_SVC_WaitIntr +ROM7_SVC_WaitIntr: ; 0x02389368 + ldr r2, =0x04000000 + mov ip, r2 + mov r2, #0x0 + swi 4 + bx lr + .pool + + thumb_func_start ROM7_SVC_WaitVBlankIntr +ROM7_SVC_WaitVBlankIntr: + mov r2, #0x0 + swi 5 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Halt +ROM7_SVC_Halt: + swi 6 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Stop +ROM7_SVC_Stop: + swi 7 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBias +ROM7_SVC_SoundBias: + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet +ROM7_SVC_SoundBiasSet: + add r1, r0, #0x0 + mov r0, #0x1 + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset +ROM7_SVC_SoundBiasReset: + add r1, r0, #0x0 + mov r0, #0x0 + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Div +ROM7_SVC_Div: + swi 9 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_DivRem +ROM7_SVC_DivRem: + swi 9 + add r0, r1, #0x0 + bx lr + .incbin "baserom.nds", 0x3163a4, 0x1ff54 + +UNK_23A92F8: + .incbin "baserom.nds", 0x3362F8, 0x24 + +UNK_23A931C: diff --git a/arm7/asm/macros.inc b/arm7/asm/macros.inc new file mode 100644 index 00000000..156b2b09 --- /dev/null +++ b/arm7/asm/macros.inc @@ -0,0 +1 @@ + .include "asm/macros/function.inc" diff --git a/arm7/asm/macros/function.inc b/arm7/asm/macros/function.inc new file mode 100644 index 00000000..6b9e5f40 --- /dev/null +++ b/arm7/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/arm7/global.inc b/arm7/global.inc new file mode 100644 index 00000000..478abdaa --- /dev/null +++ b/arm7/global.inc @@ -0,0 +1,3517 @@ +.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 diff --git a/arm7/undefined_syms.txt b/arm7/undefined_syms.txt new file mode 100644 index 00000000..075d22a9 --- /dev/null +++ b/arm7/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; diff --git a/asm/arm7_rom.s b/asm/arm7_rom.s deleted file mode 100644 index fa248afc..00000000 --- a/asm/arm7_rom.s +++ /dev/null @@ -1,212 +0,0 @@ -/* arm7_rom.s TODO: Disassemble */ - .include "asm/macros.inc" - .global ARM7AutoLoad - - .section .text - arm_func_start Entry_ARM7 - -Entry_ARM7: - mov ip, #67108864 ; 0x4000000 - str ip, [ip, #520] ; 0x208 - ldr r1, _23800cc - mov r0, #58720256 ; 0x3800000 - cmp r0, r1 - movpl r1, r0 - ldr r2, _23800d0 - mov r0, #0 -_02380020: - cmp r1, r2 - stmltia r1!, {r0} - blt _02380020 - mov r0, #19 - msr CPSR_c, r0 - ldr sp, _23800d4 - mov r0, #18 - msr CPSR_c, r0 - ldr r0, _23800d8 - mov sp, r0 - ldr r1, _23800dc - sub r1, r0, r1 - mov r0, #31 - msr CPSR_fsxc, r0 - sub sp, r1, #4 - ldr r0, _23800e0 - ldr r1, _23800e4 - add r2, r1, #352 ; 0x160 -_02380068: - ldr r3, [r0], #4 - str r3, [r1], #4 - cmp r1, r2 - bmi _02380068 - ldr r0, _23800e8 - add r2, r1, #32 -_02380080: - ldr r3, [r0], #4 - str r3, [r1], #4 - cmp r1, r2 - bmi _02380080 - bl FUN_2380100 - ldr r0, _23800ec - ldr r1, [r0, #12] - ldr r2, [r0, #16] - mov r0, #0 -_023800a4: - cmp r1, r2 - strcc r0, [r1], #4 - bcc _023800a4 - bl FUN_238015C - ldr r1, _23800f0 - ldr r0, _23800f4 - str r0, [r1] - ldr r1, _23800f8 - ldr lr, _23800fc - bx r1 -_23800cc: .word FUN_023801B0 -_23800d0: .word 0x0380ff00 -_23800d4: .word 0x0380ffc0 -_23800d8: .word 0x0380ff80 -_23800dc: .word 0x00000400 -_23800e0: .word 0x023fe940 -_23800e4: .word 0x027ffa80 -_23800e8: .word 0x023fe904 -_23800ec: .word _2380198 -_23800f0: .word 0x0380fffc -_23800f4: .word 0x037f853c -_23800f8: .word 0x037f8468 -_23800fc: .word 0xffff0000 - arm_func_end Entry_ARM7 - - arm_func_start FUN_2380100 -FUN_2380100: - ldr r0, _2380154 - ldr r1, [r0] - ldr r2, [r0, #4] - ldr r3, [r0, #8] -_02380110: - cmp r1, r2 - beq _02380150 - ldr r4, [r1], #4 - ldr r5, [r1], #4 - add r6, r4, r5 -_02380124: - cmp r4, r6 - ldrmi r7, [r3], #4 - strmi r7, [r4], #4 - bmi _02380124 - ldr r5, [r1], #4 - add r6, r4, r5 - mov r7, #0 -_02380140: - cmp r4, r6 - strcc r7, [r4], #4 - bcc _02380140 - beq _02380110 -_02380150: - b ARM7AutoLoad -_2380154: .word _2380198 -ARM7AutoLoad: - bx lr - arm_func_end FUN_2380100 - - arm_func_start FUN_238015C -FUN_238015C: - mov r0, #1 - mov r1, #0 - ldr r2, _2380194 - sub r3, r2, #4194304 ; 0x400000 -_0238016c: - strh r1, [r2] - ldrh ip, [r3] - cmp r1, ip - movne r0, #2 - bne _0238018c - add r1, r1, #1 - cmp r1, #2 - bne _0238016c -_0238018c: - strh r0, [r2] - bx lr -_2380194: .word 0x027ffffa -_2380198: - .word UNK_23A92F8 - .word UNK_23A931C - .word FUN_023801B0 - .word FUN_023801B0 - .word FUN_023801B0 - .word 0x00000000 - arm_func_end FUN_238015C - - arm_func_start FUN_023801B0 -FUN_023801B0: - .incbin "baserom.nds", 0x30D1B0, 0x91B0 - - thumb_func_start ROM7_SVC_SoftReset -ROM7_SVC_SoftReset: ; 0x02389360 - swi 0 - bx lr - - thumb_func_start ROM7_SVC_WaitByLoop -ROM7_SVC_WaitByLoop: ; 0x02389364 - swi 3 - bx lr - - thumb_func_start ROM7_SVC_WaitIntr -ROM7_SVC_WaitIntr: ; 0x02389368 - ldr r2, =0x04000000 - mov ip, r2 - mov r2, #0x0 - swi 4 - bx lr - .pool - - thumb_func_start ROM7_SVC_WaitVBlankIntr -ROM7_SVC_WaitVBlankIntr: - mov r2, #0x0 - swi 5 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Halt -ROM7_SVC_Halt: - swi 6 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Stop -ROM7_SVC_Stop: - swi 7 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBias -ROM7_SVC_SoundBias: - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet -ROM7_SVC_SoundBiasSet: - add r1, r0, #0x0 - mov r0, #0x1 - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset -ROM7_SVC_SoundBiasReset: - add r1, r0, #0x0 - mov r0, #0x0 - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Div -ROM7_SVC_Div: - swi 9 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_DivRem -ROM7_SVC_DivRem: - swi 9 - add r0, r1, #0x0 - bx lr - .incbin "baserom.nds", 0x3163a4, 0x1ff54 - -UNK_23A92F8: - .incbin "baserom.nds", 0x3362F8, 0x24 - -UNK_23A931C: diff --git a/pokediamond.lcf b/pokediamond.lcf index 452afd17..01161a05 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -2,7 +2,7 @@ MEMORY { header (RWX) : ORIGIN=0, LENGTH=0 arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 - arm7 (RWX) : ORIGIN=0x2380000, LENGTH=0 + arm7 (RWX) : ORIGIN=0x02380000, LENGTH=0 filenametable (RWX) : ORIGIN=0, LENGTH=0 fileallocationtable (RWX) : ORIGIN=0, LENGTH=0 icon_title (RWX) : ORIGIN=0, LENGTH=0 @@ -640,7 +640,8 @@ SECTIONS { } > rom3.FILE_30C600 .arm7 : AT(0x30D000) { - arm7_rom.o(.text) + ARM7AutoLoad = 0x02380158; + INCLUDE arm7.bin } > arm7 .filenametable : AT(0x336400) { -- cgit v1.2.3 From 442bb98553233bd38d6117d58df82d30bb83872a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Apr 2020 21:09:36 -0400 Subject: Update install instructions and travis --- .travis.yml | 2 ++ INSTALL.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 867a5198..4f376cea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,8 @@ install: # These files are only accessible from Travis CI IP Addresses to prevent piracy. - wget http://private.martmists.com/mwccarm.zip - wget http://private.martmists.com/baserom.nds + - cp baserom.nds arm7/ + - cp baserom.nds arm9/ - unzip mwccarm.zip - mv mwccarm tools diff --git a/INSTALL.md b/INSTALL.md index 1ffc5c59..82e9719e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ ### 1. Copy baserom(s) into root folder -Put a clean copy of Pokemon Diamond (US) nds rom at `./baserom.nds`. +Put clean copies of Pokemon Diamond (US) nds rom at `./baserom.nds`, `./arm9/baserom.nds`, and `./arm7/baserom.nds`. All three copies are required and must be identical. ### 2. Install MWCC compiler -- cgit v1.2.3 From fc0f4d2c89040c868df82d0da5bfdfc492ea05d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Apr 2020 21:30:25 -0400 Subject: No need for multiple copies of baserom.nds --- .travis.yml | 2 -- INSTALL.md | 2 +- Makefile | 6 ++++++ arm7/Makefile | 2 +- arm9/Makefile | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4f376cea..867a5198 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,6 @@ install: # These files are only accessible from Travis CI IP Addresses to prevent piracy. - wget http://private.martmists.com/mwccarm.zip - wget http://private.martmists.com/baserom.nds - - cp baserom.nds arm7/ - - cp baserom.nds arm9/ - unzip mwccarm.zip - mv mwccarm tools diff --git a/INSTALL.md b/INSTALL.md index 82e9719e..1ffc5c59 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ ### 1. Copy baserom(s) into root folder -Put clean copies of Pokemon Diamond (US) nds rom at `./baserom.nds`, `./arm9/baserom.nds`, and `./arm7/baserom.nds`. All three copies are required and must be identical. +Put a clean copy of Pokemon Diamond (US) nds rom at `./baserom.nds`. ### 2. Install MWCC compiler diff --git a/Makefile b/Makefile index f67c4348..bfb5ed9e 100644 --- a/Makefile +++ b/Makefile @@ -118,12 +118,18 @@ all: $(ROM) @$(SHA1SUM) -c $(TARGET).sha1 clean: mostlyclean + make -C arm9 clean + make -C arm7 clean make -C tools/mwasmarm_patcher clean mostlyclean: tidy + make -C arm9 mostlyclean + make -C arm7 mostlyclean find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} + tidy: + make -C arm9 tidy + make -C arm7 tidy $(RM) -r $(BUILD_DIR) tools: $(TOOLDIRS) diff --git a/arm7/Makefile b/arm7/Makefile index 88e81d5d..d2c2681d 100644 --- a/arm7/Makefile +++ b/arm7/Makefile @@ -79,7 +79,7 @@ OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o -ASFLAGS = -proc arm5te +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 diff --git a/arm9/Makefile b/arm9/Makefile index 5c6b4fda..d97cfb95 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -79,7 +79,7 @@ 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 +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 -- cgit v1.2.3